home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 8 / FM Towns Free Software Collection 8.iso / t_os / gpen32k / source / lib / osrc / message.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-06-01  |  1.8 KB  |  101 lines

  1. /*
  2.     message.c
  3. */
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <EGB.H>
  8. #include <MOS.H>
  9. #include <FMCfrb.h>
  10. #include <kkstr2.h>
  11. #include <Normlib.h>
  12. #include <okome.h>
  13.  
  14. extern char work[];
  15.  
  16. #define MEX1    200
  17. #define    MEY1    140
  18. #define MEX4    290
  19. #define    MEY4    100
  20. #define MEX3    (MEX4-1)
  21. #define    MEY3    (MEY4-1)
  22. #define MEX2    (MEX1+MEX3)
  23. #define    MEY2    (MEY1+MEY3)
  24.  
  25. /*
  26.  m:確認モード
  27.  1: 確認
  28.  2: 実行 取消
  29. */
  30.  
  31. int message(char *mess,int m)
  32. {
  33.     int mb, mx, my, p;
  34.     unsigned int kb, en;
  35.     p = EGB_getWritePage( 0, 0 );
  36.     EGB_writePage( work, 0 );
  37.     MOS_disp(0);
  38.     OKM_gth( MEX1,MEY1, MEX2,MEY2, 1 );
  39.     boxbf(MEX1,MEY1,MEX2,MEY2,8,15);
  40.     boxb(MEX1+2,MEY1+2,MEX2-2,MEY2-2,8);
  41.     symbol(MEX1+20,MEY1+35,mess,16,8);
  42.     for ( mb = 2-m; mb<2; mb++ )
  43.     {
  44.         boxbf(MEX2-130+60*mb,MEY2-29,MEX2-90+mb*60,MEY2-8,8,15);
  45.     }
  46.     if ( m==1 )
  47.     {
  48.         font12(MEX2- 65,MEY2-13,"確 認",8);
  49.     }    else    {
  50.         font12(MEX2-125,MEY2-13,"実 行",8);
  51.         font12(MEX2- 65,MEY2-13,"取 消",8);
  52.     }
  53.     MOS_disp(1);
  54.     do    {
  55.         MOS_rdpos(&mb,&mx,&my);
  56.         do    {
  57.             kb = KYB_read(1,&en);
  58.         }    while (kb==0xffff && KAN_inpchk()==KAN_MISET);
  59.         if (mb && my>=MEY2-29 && my<=MEY2-8)
  60.         {
  61.             if ( mx>=MEX2-70 && mx<=MEX2-20 )
  62.             {
  63.                 m-= 1;
  64.                 break;
  65.             }
  66.             if ( mx>=MEX2-130 && mx<=MEX2-80 && m == 2)
  67.             {
  68.                 m = 0;
  69.                 break;
  70.             }
  71.         }
  72. /*        if (mb && (mx>=MEX1 && mx<=MEX2 && my>=MEY1 && my<=MEY2)==0)
  73.         {
  74.             if (mb == 1)
  75.             {
  76.                 m = 0;
  77.                 break;
  78.             } else {
  79.                 m-= 1;
  80.                 break;
  81.             }
  82.         }    */
  83.         if ( kb == 0x0D || kb==0x8012 )
  84.         {
  85.             m = 0;
  86.             break;
  87.         }
  88.         if (m == 2 && ( kb == 0x1B || kb == 0x8011 ) )
  89.         {
  90.             m = 1;
  91.             break;
  92.         }
  93.     }    while (1);
  94.     MOS_disp(0);
  95.     OKM_gth( MEX1,MEY1, MEX2,MEY2, 0 );
  96.     MOS_disp(1);
  97.     EGB_writePage( work, p );
  98.     mbout(&mb,&mx,&my);
  99.     return (m);
  100. }
  101.